#include "mywidget.h"
#include <QFont>
#include <QMessageBox>

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    initUI();
}

MyWidget::~MyWidget()
{
    // 清理资源
    delete m_clockTimer;
}

void MyWidget::initUI()
{
    // 创建主布局
    m_mainLayout = new QVBoxLayout(this);

    // 创建时钟标签
    m_clockLabel = new QLabel(this);
    m_clockLabel->setAlignment(Qt::AlignCenter);
    QFont clockFont = m_clockLabel->font();
    clockFont.setPointSize(24);
    clockFont.setBold(true);
    m_clockLabel->setFont(clockFont);
    m_mainLayout->addWidget(m_clockLabel);

    // 创建状态标签
    m_statusLabel = new QLabel(tr("欢迎使用 Qt5 示例程序"), this);
    m_statusLabel->setAlignment(Qt::AlignCenter);
    m_mainLayout->addWidget(m_statusLabel);

    // 创建按钮布局
    m_buttonLayout = new QHBoxLayout;
    m_mainLayout->addLayout(m_buttonLayout);

    // 创建点击按钮
    m_clickButton = new QPushButton(tr("点击我"), this);
    m_clickButton->setMinimumSize(100, 40);
    m_buttonLayout->addWidget(m_clickButton, 0, Qt::AlignCenter);

    // 连接信号和槽
    connect(m_clickButton, &QPushButton::clicked, this, &MyWidget::onButtonClicked);

    // 创建并启动时钟定时器
    m_clockTimer = new QTimer(this);
    connect(m_clockTimer, &QTimer::timeout, this, &MyWidget::updateClock);
    m_clockTimer->start(1000);  // 每秒更新一次

    // 初始化时钟显示
    updateClock();

    // 设置布局
    setLayout(m_mainLayout);
}

void MyWidget::onButtonClicked()
{
    // 按钮点击事件处理
    m_statusLabel->setText(tr("按钮被点击了！"));
    QMessageBox::information(this, tr("提示"), tr("按钮被点击了！"));
}

void MyWidget::updateClock()
{
    // 更新时钟显示
    QTime currentTime = QTime::currentTime();
    QString timeString = currentTime.toString("HH:mm:ss");
    m_clockLabel->setText(timeString);
}